Implement and ship RTCRtpSendParameters.degradationPreference Intent: https://groups.google.com/a/chromium.org/g/blink-dev/c/WPvxi5nUK2E/m/Xd0ZzPwxAwAJ Bug: 857041 Change-Id: I3f11c310624d5c2153eefbf9c1e08383d9aad4f8 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2074777 Commit-Queue: Florent Castelli <orphis@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Auto-Submit: Florent Castelli <orphis@chromium.org> Cr-Commit-Position: refs/heads/master@{#755512} 
diff --git a/webrtc/RTCRtpParameters-codecs.html b/webrtc/RTCRtpParameters-codecs.html index fdb5844..f5fa65e 100644 --- a/webrtc/RTCRtpParameters-codecs.html +++ b/webrtc/RTCRtpParameters-codecs.html 
@@ -28,7 +28,6 @@  sequence<RTCRtpHeaderExtensionParameters> headerExtensions;  RTCRtcpParameters rtcp;  sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference;  };    dictionary RTCRtpCodecParameters { 
diff --git a/webrtc/RTCRtpParameters-degradationPreference.html b/webrtc/RTCRtpParameters-degradationPreference.html deleted file mode 100644 index e2c92bc..0000000 --- a/webrtc/RTCRtpParameters-degradationPreference.html +++ /dev/null 
@@ -1,87 +0,0 @@ -<!doctype html> -<meta charset=utf-8> -<title>RTCRtpParameters degradationPreference</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="dictionary-helper.js"></script> -<script src="RTCRtpParameters-helper.js"></script> -<script> - 'use strict'; - - // Test is based on the following editor draft: - // https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html - - // The following helper functions are called from RTCRtpParameters-helper.js: - // validateSenderRtpParameters - - /* - 5.2. RTCRtpSender Interface - interface RTCRtpSender { - Promise<void> setParameters(optional RTCRtpParameters parameters); - RTCRtpParameters getParameters(); - }; - - dictionary RTCRtpParameters { - DOMString transactionId; - sequence<RTCRtpEncodingParameters> encodings; - sequence<RTCRtpHeaderExtensionParameters> headerExtensions; - RTCRtcpParameters rtcp; - sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference; - }; - - enum RTCDegradationPreference { - "maintain-framerate", - "maintain-resolution", - "balanced" - }; - - - degradationPreference is set to the last value passed into setParameters, - or the default value of "balanced" if setParameters hasn't been called. - */ - - promise_test(t => { - const pc = new RTCPeerConnection(); - t.add_cleanup(() => pc.close()); - const { sender } = pc.addTransceiver('audio'); - - const param = sender.getParameters(); - validateSenderRtpParameters(param); - - assert_equals(param.degradationPreference, 'balanced', - 'Expect initial param.degradationPreference to be balanced'); - - param.degradationPreference = 'maintain-framerate'; - - return pc.setParameters(param) - .then(() => { - const param = sender.getParameters(); - validateSenderRtpParameters(param); - - assert_equals(param.degradationPreference, 'maintain-framerate'); - }); - }, 'setParameters with degradationPreference set should succeed'); - - promise_test(t => { - const pc = new RTCPeerConnection(); - t.add_cleanup(() => pc.close()); - const { sender } = pc.addTransceiver('audio'); - - const param = sender.getParameters(); - validateSenderRtpParameters(param); - - assert_equals(param.degradationPreference, 'balanced', - 'Expect initial param.degradationPreference to be balanced'); - - param.degradationPreference = undefined; - - return pc.setParameters(param) - .then(() => { - const param = sender.getParameters(); - validateSenderRtpParameters(param); - - assert_equals(param.degradationPreference, undefined); - }); - }, 'setParameters with degradationPreference unset should succeed'); - -</script> 
diff --git a/webrtc/RTCRtpParameters-encodings.html b/webrtc/RTCRtpParameters-encodings.html index 2f94186..00e8088 100644 --- a/webrtc/RTCRtpParameters-encodings.html +++ b/webrtc/RTCRtpParameters-encodings.html 
@@ -41,7 +41,6 @@  sequence<RTCRtpHeaderExtensionParameters> headerExtensions;  RTCRtcpParameters rtcp;  sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference;  };    dictionary RTCRtpEncodingParameters { 
diff --git a/webrtc/RTCRtpParameters-headerExtensions.html b/webrtc/RTCRtpParameters-headerExtensions.html index 85c3338..7de2b75 100644 --- a/webrtc/RTCRtpParameters-headerExtensions.html +++ b/webrtc/RTCRtpParameters-headerExtensions.html 
@@ -27,7 +27,6 @@  sequence<RTCRtpHeaderExtensionParameters> headerExtensions;  RTCRtcpParameters rtcp;  sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference;  };    dictionary RTCRtpHeaderExtensionParameters { 
diff --git a/webrtc/RTCRtpParameters-helper.js b/webrtc/RTCRtpParameters-helper.js index d61d8e1..17ecfba 100644 --- a/webrtc/RTCRtpParameters-helper.js +++ b/webrtc/RTCRtpParameters-helper.js 
@@ -46,9 +46,6 @@    - rtcp.cname is set to the CNAME of the associated RTCPeerConnection. rtcp.reducedSize  is set to true if reduced-size RTCP has been negotiated for sending, and false otherwise. - - - degradationPreference is set to the last value passed into setParameters, or the - default value of "balanced" if setParameters hasn't been called.  */  function validateSenderRtpParameters(param) {  validateRtpParameters(param); @@ -80,7 +77,7 @@  - rtcp.reducedSize is set to true if the receiver is currently prepared to receive  reduced-size RTCP packets, and false otherwise. rtcp.cname is left undefined.   - - transactionId and degradationPreference are left undefined. + - transactionId is left undefined.  */  function validateReceiverRtpParameters(param) {  validateRtpParameters(param); @@ -93,9 +90,6 @@    assert_equals(param.rtcp.cname, undefined,  'Expect receiver param.rtcp.cname to be unset'); - - assert_equals(param.degradationPreference, undefined, - 'Expect receiver param.degradationPreference to be unset');  }    /* @@ -105,7 +99,6 @@  sequence<RTCRtpHeaderExtensionParameters> headerExtensions;  RTCRtcpParameters rtcp;  sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference;  };    enum RTCDegradationPreference { @@ -134,9 +127,6 @@  for(const codec of param.codecs) {  validateCodecParameters(codec);  } - - assert_optional_enum_field(param, 'degradationPreference', - ['maintain-framerate', 'maintain-resolution', 'balanced']);  }    /* @@ -307,4 +297,4 @@  const encoding2 = getFirstEncoding(param2);  assert_equals(encoding2[field], value2);  }, desc + ' without RTCRtpTransceiverInit'); -} \ No newline at end of file +} 
diff --git a/webrtc/RTCRtpParameters-rtcp.html b/webrtc/RTCRtpParameters-rtcp.html index 82fb49b..7965304 100644 --- a/webrtc/RTCRtpParameters-rtcp.html +++ b/webrtc/RTCRtpParameters-rtcp.html 
@@ -27,7 +27,6 @@  sequence<RTCRtpHeaderExtensionParameters> headerExtensions;  RTCRtcpParameters rtcp;  sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference;  };    dictionary RTCRtcpParameters { 
diff --git a/webrtc/RTCRtpParameters-transactionId.html b/webrtc/RTCRtpParameters-transactionId.html index ae56fb4..a7b7865 100644 --- a/webrtc/RTCRtpParameters-transactionId.html +++ b/webrtc/RTCRtpParameters-transactionId.html 
@@ -48,7 +48,6 @@  sequence<RTCRtpHeaderExtensionParameters> headerExtensions;  RTCRtcpParameters rtcp;  sequence<RTCRtpCodecParameters> codecs; - RTCDegradationPreference degradationPreference;  };    getParameters 
diff --git a/webrtc/RTCRtpReceiver-getParameters.html b/webrtc/RTCRtpReceiver-getParameters.html index 7f8ac67..4be0e3b 100644 --- a/webrtc/RTCRtpReceiver-getParameters.html +++ b/webrtc/RTCRtpReceiver-getParameters.html 
@@ -30,9 +30,7 @@    - rtcp.reducedSize is set to true if the receiver is currently prepared to receive  reduced-size RTCP packets, and false otherwise. rtcp.cname is left undefined. - - - transactionId and degradationPreference are left undefined. - */ + */  promise_test(async t => {  const pc = new RTCPeerConnection();  t.add_cleanup(() => pc.close());